Notes
Outline
Object-Oriented and
Classical Software Engineering
 
Fifth Edition, WCB/McGraw-Hill, 2002

Stephen R. Schach
srs@vuse.vanderbilt.edu
CHAPTER 2
Overview
Client, Developer, and User
Requirements Phase
Specification Phase
Design Phase
Implementation Phase
Integration Phase
Maintenance Phase
Retirement
Problems with Software Production: Essence and Accidents
Improving the Software Process
The Software Process
The life-cycle model
CASE tools
The individuals
Terminology
Systems analysis
Requirements + specifications phases
Operations mode
Maintenance
Design
Architectural design, detailed design
Client, developer, user
Internal software development/contract software
Testing Phase?
There is NO testing phase
Testing is an activity performed throughout software production
Verification
Performed at the end of each phase
Validation
Performed before delivering the product to the client
Documentation Phase?
There is NO documentation phase
Every phase must be fully documented before starting the next phase
Postponed documentation may never be completed
The responsible individual may leave
The product is constantly changing—we need the documentation to do this
The design (for example) will be modified during development, but the original designers may not be available to document it
Requirements Phase
Assumption
The software being considered is economically justifiable
Concept exploration
Determine what the client needs, not what the client wants
Moving target problem
Requirements Phase Testing
Rapid prototyping
Requirements Phase Documentation
Rapid prototype, or
Requirements document
Specification Phase
Specifications document (“specifications”)
Legal document
Must not have phrases like “optimal,” or   “98% complete”
Specification Phase (contd)
Specifications must not be
Ambiguous
Incomplete
Contradictory
Specification Phase (contd)
Once the specifications have been signed off
The software product management plan (SPMP) is  drawn up
This is the earliest possible time for the SPMP
Specification Phase Testing
Traceability
Review
Check the SPMP
Specification Phase Documentation
Specification document (specifications)
SPMP
Design Phase
Specification—what
Design—how
Retain design decisions
When a dead-end is reached
For the maintenance team
Ideally, the design should be open-ended
Architectural design
Decompose the product into modules
Detailed design
Design each module: data structures, algorithms
Design Phase Testing
Traceability
Review
Design Phase Documentation
Design
Architectural design
Detailed design
Implementation Phase
Implement the detailed design in code
Implementation Phase Testing
Review
Test cases
Informal testing (desk checking)
Formal testing (SQA)
Implementation Phase Documentation
Source code
Test cases (with expected output)
Integration Phase
Combine the modules and check the product as a whole
Integration Phase Testing
Product testing
Acceptance testing
Integration Phase Documentation
Commented source code
Test cases for the product as a whole
COTS Software
“Shrink-wrapped software”
Commercial off-the-shelf (COTS)
Nowadays, COTS software is often downloaded
“Click-wrapped software”
Alpha testing
Beta testing
Maintenance Phase
Maintenance
Any change once the client has accepted the software
The most money is devoted to this phase
The problem of lack of documentation
Maintenance Phase Testing
Regression testing
Maintenance Phase Documentation
Record of all changes made, with reasons
Regression test cases
Retirement
Good software is maintained
Sometimes software is rewritten from scratch
Software is now unmaintainable because
A drastic change in design has occurred
The product must be implemented on a totally new hardware/operating system
Documentation is missing or inaccurate
Hardware is to be changed—it may be cheaper to rewrite the software from scratch than to modify it
True retirement is a rare event
Process-Specific Difficulties
Does the product meets the user’s real needs?
Is the specification document free of ambiguities, contradictions, and omissions?
Inherent Problems of Software Production
Hardware has inherent limits
So does software
No Silver Bullet
Complexity
Conformity
Changeability
Invisibility
Aristotelian categories
Essence
Accidents
Complexity
Software is far more complex than hardware
Traditional abstraction will not work
We cannot understand the whole, so we cannot understand any part
Management is difficult
Maintenance is a nightmare (documentation, too)
Conformity
Type 1: Existing gold refinery
Type 2: New gold refinery
Changeability
Software is easier to change than hardware
Pressure to change
Reality
Useful software
Easier to change
Software has a long lifetime (~15 yrs)    compared to hardware (~4 yrs)
 Invisibility
Software is invisible and unvisualizable
Complete views are incomprehensible
Partial views are misleading
However, all views can be helpful
Is There a Silver Bullet?
What about
High-level languages
Time sharing
CASE tools
These did not solve the intrinsic problems
We have experienced
6% annual productivity increase
But, no “silver bullet” (order-of-magnitude increase) is possible
Improving the Software Process
U.S. Department of Defense initiative
Software Engineering Institute (SEI)
The fundamental problem with software
The software process is badly managed
Improving the Software Process (contd)
Software process improvement initiatives
Capability maturity model (CMM)
ISO 9000-series
ISO/IEC 15504
Capability Maturity Model
Not a life-cycle model
Set of strategies for improving the software process
SW–CMM for software
P–CMM for human resources (“people”)
SE–CMM for systems engineering
IPD–CMM for integrated product development
SA–for software acquisition
These strategies are being unified into CMMI (capability maturity model integration)
SW–CMM
A strategy for improving the software process
Put forward in 1986 by the SEI
Fundamental idea:
Improving the software process leads to
Improved software quality
Delivery on time, within budget
Improved management leads to
Improved techniques
Five levels of “maturity” are defined
Organization advances stepwise from level to level
Level 1.  Initial Level
Ad hoc approach
Entire process is unpredictable
Management consists of responses to crises
Most organizations world-wide are at level 1
Level 2.  Repeatable Level
Basic software management
Management decisions should be made on the basis of previous experience with similar products
Measurements (“metrics”) are made
These can be used for making cost and duration predictions in the next project
Problems are identified, immediate corrective action is taken
Level 3.  Defined Level
The software process is fully documented
Managerial and technical aspects are clearly defined
Continual efforts are made to improve quality, productivity
Reviews are performed to improve software quality
CASE tools are applicable now (and not at levels 1 or 2)
Level 4.  Managed Level
Quality and productivity goals are set for each  project
Quality, productivity are continually monitored
Statistical quality controls are in place
Level 5.  Optimizing Level
Continuous process improvement
Statistical quality and process controls
Feedback of knowledge from each project to the next
Summary
Key Process Areas
There are key process areas (KPAs) for each level
Level 2 KPAs include:
Requirements management
Project planning
Project tracking
Configuration management
Quality assurance
Compare
Level 2: Detection and correction of faults
Level 5: Prevention of faults
Experience
It takes:
3 to 5 years to get from level 1 to level 2
1.5 to 3 years from level 2 to level 3
SEI questionnaires highlight shortcomings, suggest ways to improve the process
Original idea: Defense contracts would be awarded only to capable firms
Experience (contd)
Profitability
Hughes Aircraft (Fullerton, CA) spent $500K (1987–90)
Savings: $2M per year, moving from level 2 to level 3
Raytheon moved from level 1 in 1988 to level 3 in 1993
Productivity doubled
Return of $7.70 per dollar invested in process improvement
Other SPI Initiatives
Other software process improvement (SPI) initiatives:
ISO 9000-series
ISO/IEC 15504
ISO 9000
Set of five standards for industrial activities
ISO 9001 for quality systems
ISO 9000-3, guidelines to apply ISO 9001 to software
There is an overlap with CMM, but they are not identical
Not process improvement
Stress on documenting the process
Emphasis on measurement and metrics
ISO 9000 is required to do business with the E.U.
Also by many U.S. businesses, for example, GE
More and more U.S. businesses are ISO 9000 certified
ISO/IEC 15504
Original name: Software Process Improvement Capability dEtermination (SPICE)
International process improvement initiative
Started by British Ministry of Defence (MOD)
Includes process improvement, software procurement
Extends and improves CMM, ISO 9000
Framework, not a method
CMM, ISO 9000 conform to this framework
Now referred to as ISO/IEC 15504
Or just 15504 for short
Process Improvement Data
SEI report on 13 organizations in the original study
They used a variety of process improvement techniques, not just SW–CMM
Process Improvement Data (contd)
Results of 34 Motorola projects